1 <!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8">
5 <meta http-equiv=
"Content-Style-Type" content=
"text/css">
7 <meta name=
"Generator" content=
"Cocoa HTML Writer">
8 <meta name=
"CocoaVersion" content=
"824.42">
9 <style type=
"text/css">
10 p
.p1
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #a71e12}
11 p
.p2
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; min-height: 12.0px}
12 p
.p3
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
}
13 p
.p4
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #606060}
14 p
.p5
{margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco
; min-height: 14.0px}
15 p
.p6
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #0019b7}
16 span
.s1
{color: #0019b7}
17 span
.s2
{color: #000000}
18 span
.s3
{font: 10.0px Monaco
; color: #000000}
19 span
.s4
{color: #606060}
20 span
.Apple-tab-span
{white-space:pre
}
24 <p class=
"p1">// Generates a list of all classes for which there are no help files.
</p>
25 <p class=
"p2"><br></p>
26 <p class=
"p3"><span class=
"s1">var
</span> paths, doc, result, addFunc;
</p>
27 <p class=
"p3"><span class=
"s1">var
</span> titleString, infoString;
</p>
28 <p class=
"p3"><span class=
"s1">var
</span> documentedClasses, undocumentedClasses, classesStartIndex;
</p>
29 <p class=
"p3"><span class=
"s1">var
</span> documented, documentedIndex;
</p>
30 <p class=
"p2"><br></p>
31 <p class=
"p4"><span class=
"s2">paths = [
</span><span class=
"s1">PathName
</span><span class=
"s2">(
</span>"Help/"<span class=
"s2">),
</span><span class=
"s1">PathName
</span><span class=
"s2">(
</span>"/Library/Application Support/SuperCollider/Extensions"<span class=
"s2">),
<span class=
"Apple-converted-space"> </span></span></p>
32 <p class=
"p4"><span class=
"s2"><span class=
"Apple-tab-span"> </span></span><span class=
"s1">PathName
</span><span class=
"s2">(
</span>"~/Library/Application Support/SuperCollider/Extensions"<span class=
"s2">)];
</span></p>
33 <p class=
"p2"><br></p>
34 <p class=
"p4"><span class=
"s2">titleString =
</span>"A Generated List of all Undocumented Classes"<span class=
"s3">;
</span></p>
35 <p class=
"p5"><br></p>
36 <p class=
"p4"><span class=
"s2">infoString =
</span>"Below is an alphabetical list of all classes which have no help files. This includes classes from CRUCIAL-LIBRARY, JITLib, and other third party libraries you may have installed. Note that many of these are either private classes not intended for direct use, abstract superclasses (such as Clock), or currently non-functioning or vestigial classes (such as the image synthesis classes from SC3d5). Nevertheless this is a good place to look for undocumented functionality. Note that some of these classes are covered in overviews, tutorials, etc.\n\nClicking on any of the Class Names below will open a Class Browser. For a list of documented classes click here:\n\n"<span class=
"s2">;
</span></p>
37 <p class=
"p2"><br></p>
38 <p class=
"p3">result = titleString ++
<span class=
"s1">Char
</span>.nl ++
<span class=
"s1">Char
</span>.nl ++ infoString;
</p>
39 <p class=
"p2"><br></p>
40 <p class=
"p4"><span class=
"s2">documented =
</span>"*Show All Documented Classes"<span class=
"s2">;
</span></p>
41 <p class=
"p3">documentedIndex = result.size;
</p>
42 <p class=
"p2"><br></p>
43 <p class=
"p3">result = result ++ documented ++
<span class=
"s1">Char
</span>.nl ++
<span class=
"s1">Char
</span>.nl;
</p>
44 <p class=
"p2"><br></p>
45 <p class=
"p3">documentedClasses =
<span class=
"s1">List
</span>.new;
</p>
46 <p class=
"p2"><br></p>
47 <p class=
"p1">// compile list of documented classes and compare with master class list
</p>
48 <p class=
"p1">// WAY faster than searching for individual files
</p>
49 <p class=
"p6"><span class=
"s2">addFunc = {
</span>|folderPathName|
</p>
50 <p class=
"p3"><span class=
"Apple-tab-span"> </span>folderPathName.fullPath.containsi(
"help").if({
<span class=
"Apple-tab-span"> </span></p>
51 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>folderPathName.files.do({
<span class=
"s1">|item|
</span></p>
52 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"s1">var
</span> nameString;
</p>
53 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>nameString = item.fileName.split($.).at(
0);
</p>
54 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>if(nameString.asSymbol.asClass.notNil, {
<span class=
"Apple-converted-space"> </span></p>
55 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>documentedClasses.add(nameString.asSymbol.asClass);
</p>
56 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>});
</p>
57 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>});
</p>
58 <p class=
"p3"><span class=
"Apple-tab-span"> </span>});
</p>
59 <p class=
"p2"><br></p>
60 <p class=
"p3"><span class=
"Apple-tab-span"> </span>folderPathName.foldersWithoutCVS.do({
<span class=
"s1">|folder|
</span><span class=
"Apple-converted-space"> </span></p>
61 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>addFunc.value(folder);
</p>
62 <p class=
"p3"><span class=
"Apple-tab-span"> </span>});
</p>
64 <p class=
"p2"><br></p>
65 <p class=
"p3">paths.do(addFunc);
</p>
66 <p class=
"p2"><br></p>
67 <p class=
"p3">undocumentedClasses =
<span class=
"s1">Class
</span>.allClasses.difference(documentedClasses);
</p>
68 <p class=
"p2"><br></p>
69 <p class=
"p3">classesStartIndex = result.size;
</p>
70 <p class=
"p2"><br></p>
71 <p class=
"p3">undocumentedClasses.do({
<span class=
"s1">|item|
</span><span class=
"Apple-converted-space"> </span></p>
72 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"s1">var
</span> name;
</p>
73 <p class=
"p3"><span class=
"Apple-tab-span"> </span>name = item.name;
</p>
74 <p class=
"p1"><span class=
"s2"><span class=
"Apple-tab-span"> </span></span>// weed out metaclasses
</p>
75 <p class=
"p3"><span class=
"Apple-tab-span"> </span>name.isMetaClassName.not.if({
<span class=
"Apple-converted-space"> </span></p>
76 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>result = result ++
<span class=
"s1">Char
</span>.nl ++ name.asString;
<span class=
"Apple-converted-space"> </span></p>
77 <p class=
"p3"><span class=
"Apple-tab-span"> </span>});
</p>
79 <p class=
"p2"><br></p>
80 <p class=
"p3">result = result ++
<span class=
"s1">Char
</span>.nl;
</p>
81 <p class=
"p2"><br></p>
82 <p class=
"p4"><span class=
"s2">doc =
</span><span class=
"s1">Document
</span><span class=
"s2">.new(
</span>"Undocumented Classes"<span class=
"s2">);
</span></p>
83 <p class=
"p1">//doc = Document.open(
"Help/help-scripts/tab-template.rtf");
</p>
84 <p class=
"p1">//doc.title =
"Undocumented Classes";
</p>
85 <p class=
"p2"><br></p>
86 <p class=
"p3">doc.setFont(
<span class=
"s1">Font
</span>(
<span class=
"s4">"Helvetica"</span>,
12));
</p>
87 <p class=
"p3">doc.string = result;
</p>
88 <p class=
"p2"><br></p>
89 <p class=
"p3">doc.setFont(
<span class=
"s1">Font
</span>(
<span class=
"s4">"Helvetica-Bold"</span>,
18),
0, titleString.size);
</p>
90 <p class=
"p2"><br></p>
91 <p class=
"p3">doc.selectRange(documentedIndex, documented.size);
<span class=
"Apple-converted-space"> </span></p>
92 <p class=
"p3">doc.underlineSelection;
</p>
93 <p class=
"p2"><br></p>
94 <p class=
"p1">// Click on name opens class browser
</p>
95 <p class=
"p3">doc.mouseDownAction = {
<span class=
"s1">arg
</span> document;
</p>
96 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"s1">var
</span> line;
</p>
97 <p class=
"p3"><span class=
"Apple-tab-span"> </span>line = document.currentLine;
</p>
98 <p class=
"p3"><span class=
"Apple-tab-span"> </span>if((document.selectionStart
> classesStartIndex)
&& (line.size
> 0), {
</p>
99 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>(line ++
<span class=
"s4">".browse"</span>).interpret
</p>
100 <p class=
"p3"><span class=
"Apple-tab-span"> </span>});
</p>
101 <p class=
"p3"><span class=
"Apple-converted-space"> </span>};
</p>
102 <p class=
"p2"><span class=
"Apple-converted-space"> </span></p>
103 <p class=
"p3">doc.selectRange(
0,
0);
</p>
104 <p class=
"p3">doc.editable_(
<span class=
"s1">false
</span>);
</p>
105 <p class=
"p3">{doc.removeUndo;}.defer(
0.1);
</p>